package com.core.sgip.interf;

import java.io.OutputStream;

import com.core.sgip.common.SGIPMsg;
import com.core.sgip.common.body.command.Report;
import com.core.sgip.common.body.command.Submit;
import com.core.sgip.common.head.SGIPMsgHead;
import com.demo.jfinal.model.ApiOrders;

public interface SGIPmessageHandler {

	/**
	 * 
	 * @param sgipMsg
	 */
	public void handleDeliverMessage(SGIPMsgHead head, SGIPMsg sgipMsg,String appkey,String secretKye,OutputStream os);
	
	/**
	 * 
	 * @param sgipMsg
	 */
	public void handleDeliverMessageRallback(SGIPMsgHead head, SGIPMsg sgipMsg,String appkey,String secretKye,OutputStream os);
	
	/**
	 * 提供sgip服务，供上游返回上行数据
	 * @param head
	 * @param sgipMsg
	 * @param appkey
	 * @param secretKye
	 * @param os
	 */
	public void handleDeliverMessageRallbackMO(SGIPMsgHead head, SGIPMsg sgipMsg,String appkey,String secretKye,OutputStream os);

	/**
	 * 
	 * @param report
	 */
	public void handleReportMessage(SGIPMsgHead head, Report report);
	
	/**
	 * 提供sgip服务供 上游推送状态
	 * @param head
	 * @param report
	 */
	public void handleReportMessagePushstate(SGIPMsgHead head, Report report);

	/**
	 * 
	 * @param head
	 * @param submit
	 */
	public void handleSubmitMessage(SGIPMsgHead head, SGIPMsg sgipMsg,String appkey,String secretKye,OutputStream os);
	
	/**
	 * 用于客户向我们平台网关发送数据的接口
	 * @param head
	 * @param sgipMsg
	 * @param appkey
	 * @param secretKye
	 * @param os
	 */
	public void handleSubmitMessageByClientsend(SGIPMsgHead head, SGIPMsg sgipMsg,String appkey,String secretKye,OutputStream os);
	
	/**
	 * 定时任务向上游发送短信数据接口
	 * @param head
	 * @param submit
	 */
	public void handleSubmitMessage2UpJob(SGIPMsgHead head, Submit submit,ApiOrders apiOrders);		
	
	
	public void handleSubmitMessage(SGIPMsgHead head, Submit submit);		

}
